home *** CD-ROM | disk | FTP | other *** search
/ Chip: 2005 Utilities / CHIP Utilities 2005.7z / CHIP Utilities 2005.iso / images / freedos.img / LEVEL1 / LFN.CAB / bin / Lfn.bat < prev   
DOS Batch File  |  2005-01-16  |  6KB  |  199 lines

  1. @if "%debug%"=="" echo off
  2. if "%1"==":" if not "%2"=="" goto %2
  3. :: Lfn Begin ::
  4.  
  5. if not exist %ramdrv%\bin\lmod.com %0 : _error missing lmod.com (check utils.%arcext%)
  6. if not exist %ramdrv%\bin\varset.com %0 : _error missing varset.com (check utilz.%arcext%)
  7. if not exist %ramdrv%\bin\doslfn.com %0 : _error missing 'DOSLFN.COM'
  8.  
  9. :_start
  10. echo. >%tmp%\_Lfn.tmp
  11. if not exist %ramdrv%\etc\global.set goto _noglob
  12. type %ramdrv%\etc\global.set >%tmp%\_Lfn.tmp
  13. :_noglob
  14. if not exist %ramdrv%\etc\Lfn.set goto _nospec
  15. type %ramdrv%\etc\Lfn.set >%tmp%\_Lfn.tmp
  16. :_nospec
  17. xgrep -sy "^[:s]*@*[:s]*s?e?t?[:s]*Lfn_.+=" %tmp%\_Lfn.tmp >%tmp%\_Lfn.bak
  18. if errorlevel 1 goto _noset
  19. xgrep -sy "^[:s]*@*[:s]*set[:s]+" %tmp%\_Lfn.bak >%tmp%\_Lfn.bat
  20. xgrep -syv "^[:s]*@*[:s]*set[:s]+" %tmp%\_Lfn.bak >%tmp%\_Lfn.tmp
  21. if errorlevel 1 goto _runset
  22. lmod /L* set []<%tmp%\_Lfn.tmp >>%tmp%\_Lfn.bat
  23. :_runset
  24. call %tmp%\_Lfn.bat
  25. :_noset
  26.  
  27. if "%Lfn_ti%"=="" set Lfn_ti=5
  28. if "%Lfn_write%"=="" set Lfn_write=1
  29. if "%Lfn_tilde%"=="" set Lfn_tilde=1
  30. if "%Lfn_tunnel%"=="" set Lfn_tunnel=1
  31. if "%Lfn_cdrom%"=="" set Lfn_cdrom=1
  32. if "%Lfn_indos%"=="" set Lfn_indos=1
  33. if "%Lfn_cdro%"=="" set Lfn_cdro=1
  34.  
  35. for %%i in (-u -U) do if "%1"=="%%i" goto _unload
  36. if "%1"=="/u" goto _unload
  37. if "%1"=="/U" goto _unload
  38. for %%i in (-c -C) do if "%1"=="%%i" goto _config
  39. if "%1"=="/c" goto _config
  40. if "%1"=="/C" goto _config
  41. for %%i in (-h -H -?) do if "%1"=="%%i" goto _usage
  42. if "%1"=="/h" goto _usage
  43. if "%1"=="/H" goto _usage
  44. if "%1"=="/?" goto _usage
  45.  
  46. if "%Lfn_ncfg%"=="1" goto _nocfg
  47. set wcb1=%Lfn_install%
  48. call w.bat box @%0:w_cfg #2,%Lfn_ti%
  49. if errorlevel 3 goto _end
  50. set Lfn_install=%wcb1%
  51. if errorlevel 2 goto _config
  52. :_nocfg
  53.  
  54. :_install
  55. if "%Lfn_install%"=="1" goto _dosbios
  56. echo LFN: Skipping LFN Support (DOSLFN not installed)
  57. goto _end
  58. :_dosbios
  59. set _Lfn=p:%ramdrv%\bin
  60. if     "%Lfn_write%"=="1" set _Lfn=%_Lfn% w+
  61. if not "%Lfn_write%"=="1" set _Lfn=%_Lfn% w-
  62. if     "%Lfn_tilde%"=="1" set _Lfn=%_Lfn% ~+
  63. if not "%Lfn_tilde%"=="1" set _Lfn=%_Lfn% ~-
  64. if     "%Lfn_tunnel%"=="1" set _Lfn=%_Lfn% t+
  65. if not "%Lfn_tunnel%"=="1" set _Lfn=%_Lfn% t-
  66. if     "%Lfn_cdrom%"=="1" set _Lfn=%_Lfn% c+
  67. if not "%Lfn_cdrom%"=="1" set _Lfn=%_Lfn% c-
  68. if     "%Lfn_indos%"=="1" set _Lfn=%_Lfn% i+
  69. if not "%Lfn_indos%"=="1" set _Lfn=%_Lfn% i-
  70. if     "%Lfn_cdro%"=="1" set _Lfn=%_Lfn% r+
  71. if not "%Lfn_cdro%"=="1" set _Lfn=%_Lfn% r-
  72. echo LFN: Installing DOSLFN %_Lfn%
  73. if not "%lfn_low%"=="1" %ldh% %ramdrv%\bin\doslfn.com %_Lfn% %1 %2 %3 %4 %5 %6 %7 %8
  74. if     "%lfn_low%"=="1"    %ramdrv%\bin\doslfn.com %_Lfn% %1 %2 %3 %4 %5 %6 %7 %8
  75. goto _end
  76.  
  77. :_unload
  78. echo LFN: Unloading DOSLFN
  79. %ramdrv%\bin\doslfn.com u
  80. goto _end
  81.  
  82. :_config
  83. echo :w_config "DOSLFN configuration" [x]>%tmp%\_Lfn.tmp
  84. echo.>>%tmp%\_Lfn.tmp
  85. echo Dialog timeout [$ Lfn_ti,3] seconds.>>%tmp%\_Lfn.tmp
  86. echo [!] Skip "Install DOSLFN or go config?" dialog>>%tmp%\_Lfn.tmp
  87. echo.>>%tmp%\_Lfn.tmp
  88. echo [.] Install LFN Support >>%tmp%\_Lfn.tmp
  89. echo     [!] Write Access >>%tmp%\_Lfn.tmp
  90. echo     [!] Tilde Usage (~~1) >>%tmp%\_Lfn.tmp
  91. echo     [!] Tunnel Effect (preserve LFN in Windows) >>%tmp%\_Lfn.tmp
  92. echo     [!] CDROM Support >>%tmp%\_Lfn.tmp
  93. echo     [!] InDOS Flag + Reset Drives >>%tmp%\_Lfn.tmp
  94. echo     [!] Read Only Bit for CDROM >>%tmp%\_Lfn.tmp
  95. echo.>>%tmp%\_Lfn.tmp
  96. echo [.] Do NOT install LFN support >>%tmp%\_Lfn.tmp
  97. echo.>>%tmp%\_Lfn.tmp
  98. echo             [ Save ]  [? Cancel ]>>%tmp%\_Lfn.tmp
  99. set wcb1=%Lfn_ncfg%
  100. set wcb2=%Lfn_write%
  101. set wcb3=%Lfn_tilde%
  102. set wcb4=%Lfn_tunnel%
  103. set wcb5=%Lfn_cdrom%
  104. set wcb6=%Lfn_indos%
  105. set wcb7=%Lfn_cdro%
  106. set wrb=2
  107. if "%Lfn_install%"=="1" set wrb=1
  108. call w.bat box @%tmp%\_Lfn.tmp:w_config
  109. if errorlevel 2 goto _end
  110. set Lfn_ncfg=%wcb1%
  111. set Lfn_write=%wcb2%
  112. set Lfn_tilde=%wcb3%
  113. set Lfn_tunnel=%wcb4%
  114. set Lfn_cdrom=%wcb5%
  115. set Lfn_indos=%wcb6%
  116. set Lfn_cdro=%wcb7%
  117. set Lfn_install=%wrb%
  118. if not "%wrb%"=="1" set Lfn_install=0
  119. set t_out=1
  120. call drd.bat %srcdrv%
  121. if errorlevel 1 set t_out=0
  122. wbat box @%0:w_wprot #1,%t_out%
  123. set t_out=
  124. if errorlevel 2 goto _start
  125.  
  126. echo LFN: Saving configuration...
  127. set | tfind /f1,4 "Lfn_">%tmp%\_Lfn.bat
  128. if not exist %srcdrv%\etc\*.* mkdir %srcdrv%\etc
  129. if not exist %ramdrv%\etc\global.set goto _yglob
  130. xgrep -syv "^[:s]*@*[:s]*s?e?t?[:s]*Lfn_.+=" %ramdrv%\etc\global.set >>%tmp%\_Lfn.bat
  131. :_yglob
  132. type %tmp%\_Lfn.bat >%srcdrv%\etc\global.set
  133. type %tmp%\_Lfn.bat >%ramdrv%\etc\global.set
  134. if exist %srcdrv%\etc\Lfn.set del %srcdrv%\etc\Lfn.set >%tmp%\nul
  135. if exist %ramdrv%\etc\Lfn.set del %ramdrv%\etc\Lfn.set >%tmp%\nul
  136. echo LFN: Configuration saved to %srcdrv%\etc\global.set
  137. echo.
  138. goto _start
  139. :w_cfg "Install DOSLFN or go config?" [x]
  140.             (~press any key~: #? sec.)
  141.  
  142.   [!] Installing LFN support ...
  143.  
  144.     Fully supported on MsDOS 7.10
  145.     Partially supported on FreeDOS
  146.      (best with Volkov Commander)
  147.  
  148.      [ Ok ] [ Config ] [? Abort ]
  149. ::
  150. :w_wprot "Disable write protection..." [x]
  151.  
  152.   If the disk in drive %srcdrv% is write
  153.   protected, please disable the write
  154.   protection now in order to save settings.
  155.   You can re-enable write protection after
  156.   saving.
  157.  
  158.             [ Ok ]  [? Cancel ]
  159. ::
  160. :_usage
  161. echo Parameters:
  162. echo -c    Config mode
  163. echo -u    Unload
  164. echo -h    This help info
  165. echo.
  166. goto _end
  167. :_error
  168. shift
  169. shift
  170. echo.
  171. echo LFN: Error%errorlevel% %1 %2 %3 %4 %5 %6 %7 %8
  172. echo.
  173. @rem pause
  174. goto _end
  175. :_abort
  176. echo LFN: Aborted...
  177. echo.
  178. @rem pause
  179. :_end
  180. set | tfind /f1,2 "W_" >%tmp%\_Lfn.tmp
  181. set | tfind /f1,4 "Lfn_" >>%tmp%\_Lfn.tmp
  182. type %tmp%\_Lfn.tmp | lmod /L* /B= set [$1]=>%tmp%\_Lfn.bat
  183. call %tmp%\_Lfn.bat
  184. if exist %tmp%\_Lfn.* del %tmp%\_Lfn.*
  185. set _Lfn=
  186. set ?=
  187. set wcb1=
  188. set wcb2=
  189. set wcb3=
  190. set wcb4=
  191. set wcb5=
  192. set wcb6=
  193. set wcb7=
  194. set wcb8=
  195. set wcb9=
  196. set wrb=
  197. set wbat=
  198. :: Lfn End ::
  199.